<!-- 
[面试:什么是提升? 什么是暂时性死区? 函数提升和变量提升哪个优先级高?]

1. 提升的意思就是可以在声明之前使用它;
2. 因为const和let不能变量提升,所以不能在声明前使用,称为暂时性死区;
3. 变量和函数都会提升,且函数的提升优先于变量提升;函数提升会把整个函数挪到作用域顶部, 变量提升只会把声明挪到作用域顶部;

 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>提升</title>
</head>
<body>
    
</body>
<script>
    // 声明提升
    var a = 10;
    var a ;
    console.log(a);

    // 函数提升
    console.log(b);
    function b(){};

    // 函数提升优先于变量提升(变量和函数都要提升,函数的优先级高于变量)
    console.log('c:',c);
    var c = 33;
    function c(){alert('hello')};
    var c = 2;

</script>
</html>